Nowadays, multimedia devices comprising programmable platform are widely used as play back devices. In particular, these computers can be equipped with powerful Graphic Processing Units (GPUs) and/or Central Processing Units (CPUs) that are able to perform advanced video processing algorithms. In this technology field, it is an ongoing concern to improve the video playback quality.
For improving video playback quality, software solutions can be employed. In present times, a plurality of different computers, comprising different amounts of resources available to perform video processing, is provided. In addition, on each computer or platform, the amount of available resources may also vary depending on running background applications, operating system, complexity of the video stream, video playback application, video renderer, screen resolution and the like. Consequently, the amount of available resources will also vary over time. For these reasons, it is difficult to determine the most suitable algorithm for processing a video stream. Testing each model in each possible configuration and setting is practically impossible for a broad launch.
More particularly, issues occur if the amount of resources is too low at a certain moment in time, since the video renderer may receive the video frames too late or it may not be able to display the received frames at the desired output rate. This may cause that the renderer may stall and severe hiccups may occur in the rendered video.
According to prior art, it may be possible to set the processing to a lower quality such that the previously mentioned problems are less likely to occur. However, this is not the preferred scenario as it is not possible to adapt to varying conditions in this way. By way of example, it may be required to lower the quality more than strictly necessary to prevent problems due to these varying conditions. Furthermore, also lowering the quality may not ensure that these problems will never arise. As a consequence, the quality will not be optimal, while the problems mentioned might still occur.
Furthermore, according to prior art, frame rate conversion can be used to adapt the frame rate. When frame rate conversion video processing algorithms are to be used, a user has to decide if the computer is powerful enough to run the respective algorithm. With off-line processing, the amount of resources the frame rate conversion algorithm requires merely determines the time it takes to process a video clip. With real-time processing however, the amount of needed resources may not exceed the amount of available resources.